According to MPEG-1, MPEG-2, and MPEG-4 fixed by the ISO/IEC JTC1, and an H.26x standard of the ITU-T, a P-picture coding method referring to a past picture so as to code a current picture and a B-picture coding method referring to both the past picture and a future picture are employed at the time of coding a current picture, and motion prediction coding is performed based on the methods.
In order to improve the coding efficiency of a motion vector, a motion vector of a current block is not just coded, but prediction coding of the motion vector is performed by using motion vectors of neighboring blocks so that a relation with the motion vectors of the neighboring blocks is reflected.
Therefore, in order to improve the coding efficiency, the accuracy of the motion vector and the minimization of a prediction error by using the same are important, but the compression efficiency of motion vector data should be also considered.
For the minimization of the motion prediction error, in a bidirectional prediction coding method, the accuracy of the motion vector is maximized by determining very accurate pair of motion vectors through a joint motion search so as to determine an optimal pair of a forward motion vector and a backward motion vector. However, in such bidirectional prediction coding method, very high complexity is required, and thus there are many difficulties in implementing the bidirectional prediction coding method.
In general, in order to overcome the difficulties, in implementing the bidirectional prediction coding method, in the bidirectional prediction coding method, after the search of the forward motion vector and the search of the backward motion vector are performed independently from each other, the bidirectional prediction coding is performed by using the searched optimal forward motion vector and backward motion vector.
However, in general, most of moving images are linearly moved. Even in this case, both the forward motion vector and the backward motion vector are transmitted without sufficiently using a fact that the motion of the images is linear. Accordingly, since more coding bits of the motion vector are generated, coding performance may deteriorate.
The conventional bidirectional prediction coding relating to the moving image compression will be hereinafter described in more detail. In the conventional bidirectional prediction coding, after predetermined prediction cost is calculated by using Equation 1 and Equation 2, a forward motion vector and a backward motion vector having minimum prediction cost are selected as a bidirectional prediction vector. An optimal bidirectional prediction reference block is determined by using the bidirectional prediction vector.
                                                        B              ^                        best                    ⁡                      (                                          mv                fw                            ,                              mv                bw                                      )                          =                              min                                          (                                                      mv                    fw                                    ,                                      mv                    bw                                                  )                            ∈                              (                                                      SR                    fw                                    ,                                      SR                    bw                                                  )                                              ⁢                      COST            ⁡                          (                              B                ,                                                      B                    ^                                    ⁡                                      (                                                                  mv                        fw                                            ,                                              mv                        bw                                                              )                                                              )                                                          Equation        ⁢                                  ⁢        1                                                          ⁢                                            B              ^                        ⁡                          (                                                mv                  fw                                ,                                  mv                  bw                                            )                                =                                                    w                fw                            ⁢                                                B                  fw                                ⁡                                  (                                      mv                    fw                                    )                                                      +                                          w                bw                            ⁢                                                B                  bw                                ⁡                                  (                                      mv                    bw                                    )                                                                                        Equation        ⁢                                  ⁢        2            
Herein,    COST(•)
of Equation 1 represents a cost function and is generally determined by the sum of absolute differences (SAD) between the current block and a prediction block, a bit rate-distortion optimization method, or the like.    B
represents a current block to be coded and    {circumflex over (B)}
represents a prediction block acquired by the weighted sum of a forward reference picture block and a backward reference picture block as shown in Equation 2.    mvfw 
and    mvbw 
represent a forward motion vector value and a backward motion vector value, respectively.    SRfw 
and    SRbw 
represent a forward search range and a backward search range, respectively.
In Equation 1,    {circumflex over (B)}best represents a final prediction value for the bidirectional prediction coding. Herein, joint estimation is performed so as to find a final forward motion vector and a final backward motion vector for the bidirectional prediction coding. In case of the joint estimation, since motion estimations of    SRfw     X    SRbw times are required and very large amount of computing and access to a reference picture memory are required, there are many practical problems in an actual moving image compression system.
Due to the above-described problems, in general, in the bidirectional prediction coding, as shown in Equation 3, after the forward motion vector and the backward motion vector are searched independently from each other, the bidirectional prediction is performed by using the forward motion vector and the backward motion vector found in Equation 3 as shown in Equation 4.
                                              ⁢                                                                              B                  ^                                fw_best                            ⁡                              (                                  mv                  fw                                )                                      =                                          min                                                      mv                    fw                                    ∈                                      SR                    fw                                                              ⁢                              COST                ⁡                                  (                                      B                    ,                                                                                            B                          ^                                                fw                                            ⁡                                              (                                                  mv                          fw                                                )                                                                              )                                                              ⁢                                          ⁢                                          ⁢                                                                      B                  ^                                bw_best                            ⁡                              (                                  mv                  bw                                )                                      =                                          min                                                      mv                    bw                                    ∈                                      SR                    bw                                                              ⁢                              COST                ⁡                                  (                                      B                    ,                                                                                            B                          ^                                                bw                                            ⁡                                              (                                                  mv                          bw                                                )                                                                              )                                                                                        Equation        ⁢                                  ⁢        3                                                                    B              ^                        best                    ⁡                      (                                          mv                fw                            ,                              mv                bw                                      )                          =                                            w              fw                        ⁢                                                            B                  ^                                fw_best                            ⁡                              (                                  mv                  fw                                )                                              +                                    w              bw                        ⁢                                                            B                  ^                                bw_best                            ⁡                              (                                  mv                  bw                                )                                                                        Equation        ⁢                                  ⁢        4            
In Equation 3,    {circumflex over (B)}fw(mvfw)
and    {circumflex over (B)}bw(mvbw)
represent a block in a position of a motion vector of a forward reference picture and a block in a position of a motion vector of a backward reference picture, respectively.    {circumflex over (B)}fw best(mvfw)
and    {circumflex over (B)}bw best(mvbw)
represent a block in a position of a final motion vector found in the forward reference picture and a block in a position of a final motion vector found in the backward reference picture, respectively.
In Equation 4,    {circumflex over (B)}best(mvfw, mvbw)
represents an optimal bidirectional motion compensation block using the optimal forward motion vector and the optimal backward motion vector independently found in Equation 3.
However, in case of independently performing the bidirectional motion estimation, since the required number of searches is    SRfw     +    SRbw 
, very low complexity is required, but bidirectional prediction performance deteriorates, and thus bit generation rate increases at the time of coding the motion vector.
Prior art developed to solve the problems is a symmetric mode in the bidirectional prediction employing the Chinese AVS (Advanced Video System) standard. In the symmetric mode, only the forward motion vector is transmitted and the backward motion vector is calculated by the use of a predetermined calculation formula in a decoder. After the forward motion vector and the backward motion vector required for the bidirectional prediction are acquired, a bidirectional prediction reference block is acquired.
In such symmetric mode, since the backward motion vector is used by being calculated to be symmetric to the forward motion vector, only the forward motion vector is transmitted. Accordingly, bit amount produced in the motion vector coding can be reduced.
In a case that calculating the backward motion vector by transmitting the forward motion vector is more advantageous than vice versa, the prior art can reduce the bit amount of the motion vector, which is required for the coding and can effectively implement a joint motion search of the forward motion vector and the backward motion vector. Therefore, the prior art can provide the bidirectional prediction method while scarcely increasing complexity of searching for a matching block of the motion search.
However, calculating the forward motion vector by transmitting the backward motion vector may be more advantageous than calculating the backward motion vector by transmitting the forward motion vector. Even in this case, since the prior art cannot help calculating the backward motion vector by transmitting the forward motion vector, it is willingly inefficient.
According to the bidirectional symmetric mode coding method of the prior art, one of the reference blocks used at the time of predicting the motion of the current block is brought from the forward reference picture and the other is brought from the backward reference picture. The reference blocks are applied only in a case that the forward reference picture is earlier than a current picture to which the current block belongs and the backward reference picture is later than the current picture. However, at the time of predicting the motion of the current block, a case that both the forward reference picture and the backward reference picture are earlier than or later than the current picture to which the current block belongs may be more advantageous than vice versa according to an image property. Even in this case, there is a problem that since only the early and later positioned reference pictures should be applied to the motion prediction according to the prior art, the compression efficiency is lowered.